自己写的（一坨）
#!/bin/bash
# 定义源表名数组
arr=(
    "AML_CUSTOMER_MASTER"
    "AML_ACCOUNT_MASTER"
    "AML_TRANSACTION_DETAIL"
    "AML_UBO_INFO"
    "AML_WATCHLIST_MASTER"
    "AML_WATCHLIST_DETAIL"
    "AML_SCREENING_RESULT"
    "AML_ALERT"
    "AML_SUSPICIOUS_TXN_REPORT"
    "AML_MONITORING_RULE"

)
# 循环遍历数组中的每个表名
for i in "${arr[@]}"
do
    echo "正在导入表: $i"

    sqoop import \
    --connect jdbc:oracle:thin:@192.168.4.60:1521:orcl \
    --username aml \
    --password 123456 \
    --table "$i" \
    --hcatalog-database ods \
    --hcatalog-table "ods_$i" \
    --hive-partition-key etl_date \
    --hive-partition-value "2025-10-15" \
    -m 1
    # 检查sqoop命令是否执行成功
    if [ $? -eq 0 ]; then
        echo "表 $i 导入成功"
    else
        echo "表 $i 导入失败"
        exit 1
    fi

    echo "----------------------------------------"
done
echo "所有表导入完成!"


老师写的
#!/bin/bash
read -p "请输入你的Oracle地址：" ora_ip
read -p "请输入你的Oracle用户名：" ora_username
read -p "请输入你的Oracle密码：" ora_pwd

# 定义数据源数组
arr_tab=(AML_CUSTOMER_MASTER AML_ACCOUNT_MASTER AML_TRANSACTION_DETAIL AML_UBO_INFO AML_WATCHLIST_MASTER AML_WATCHLIST_DETAIL AML_SCREENING_RESULT AML_ALERT AML_SUSPICIOUS_TXN_REPORT AML_MONITORING_RULE)

# 定义 ETL 时间
dt=`date -d '1 days ago' '+%y%m%d'`

# 遍历数组
echo "开始导入.."
for tab in "${arr_tab[@]}"
do

        echo "正在处理 $tab ==> ods_$tab .."
        echo ""
        sqoop import \
    --connect jdbc:oracle:thin:@"$ora_ip":1521:orcl \
    --username "$ora_username" \   #源数据的用户名
    --password "$ora_pwd" \        #源数据的密码
    --table "$tab" \   #表示源数据表名
    --hcatalog-database ods \   #表示目标数据库名
    --hcatalog-table "ods_$tab" \  #表示目标数据表名
    --hive-partition-key etl_date \  #表示分区键名
    --hive-partition-value "$dt" \  #表示分区键值
        -m 1 > /root/sqoop_ods_full_shao.log 2>&1 #指定map任务数为1，并重定向输出到日志文件
        if test $? -ne 0
        then
                echo "出现异常，结束程序！"
                echo '日志已写入 /root/sqoop_ods_full_shao.log'
                exit;
        fi
        echo ""
        echo "$tab ==> ods_$tab 处理完成！！"
done
echo "导入结束"